Optimizing the Concurrent Execution of Locks and Transactions

نویسندگان

  • Justin Emile Gottschlich
  • JaeWoong Chung
چکیده

Transactional memory (TM) is a promising alternative to mutual exclusion. In spite of this, it may be unrealistic for TM programs to be devoid of locks due to their abundant use in legacy software systems. Consequently, for TMs to be practical they may need to manage the interaction of transactions and locks when they access the same shared-memory. This paper presents two algorithms, one coarse-grained and one fine-grained, that improve the state-of-the-art performance for TMs that support the concurrent execution of locks and transactions. We also discuss the programming language constructs that are necessary to implement such algorithms and present analyses that compare and contrast our approach with prior work. Our analyses demonstrate that, (i) in general, our proposed coarseand fine-grained algorithms improve program concurrency but (ii) an algorithm’s concurrent throughput potential does not always lead to realized performance gains.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Concurrent Non-commutative Boosted Transactions

Traditional software transactional memory systems implement synchronization and recovery by tracking memory access. In recent work, we introduced transactional boosting, a methodology whereby performance is improved by forgoing read/write sets and relying instead on data structure commutativity and abstract locks for synchronization. In this paper, we describe a method for concurrent execution ...

متن کامل

Optimal Database Locks for Efficient Integrity Checking

In concurrent database systems, correctness of update transactions refers to the equivalent effects of the execution schedule and some serial schedule over the same set of transactions. Integrity constraints add further semantic requirements to the correctness of the database states reached upon the execution of update transactions. Several methods for efficient integrity checking and enforcing...

متن کامل

A Rule-Based Specification of Software Transactional Memory

Software Transactional Memory (STM) has the promise to avoid the common pitfalls of locks when writing thread-based concurrent programs. Many papers on the subject deal with low-level implementation details to support the efficient and concurrent execution of multiple transactions. We give a rule-based specification of Software Transactional Memory in terms of Constraint Handling Rules (CHR) wh...

متن کامل

Transparently Reconciling Transactions with Locking for Java Synchronization

Concurrent data accesses in high-level languages like Java and C# are typically mediated using mutual-exclusion locks. Threads use locks to guard the operations performed while the lock is held, so that the lock’s guarded operations can never be interleaved with operations of other threads that are guarded by the same lock. This way both atomicity and isolation properties of a thread’s guarded ...

متن کامل

Beyond Simple Transactions and Atomic Blocks

Concurrent programming is notoriously difficult because actions by concurrent threads may be interleaved and result in unanticipated interactions, particularly on a shared-memory system. One mechanism proposed to address this difficulty is transactional memory (TM): programmers can group several operations into a transaction, which a TM implementation guarantees will appear to execute atomicall...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011